/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package info.client;

import java.awt.event.ActionEvent;
import java.awt.TextField;
import javax.swing.*;
import java.awt.Font;
import java.awt.event.ActionListener;
import master.client.Users;

/**
 *
 * @author mark
 */
public class LoginScreen extends JFrame implements ActionListener{
    
    //Variabelen
    private JTextField name;
    private JLabel namelabel;
    private TextField password;
    private JLabel passlabel;
    private JLabel title;
    private JButton submit;
    private JMenuBar menubar;
    private JMenu bestand;
    private JMenuItem help;
    private JPanel loginpanel = new JPanel();
    private String tekst = "";
    
    private ManagementInfo managementinfo;
    private Users users;
    
    //Contructor
    public LoginScreen(){
        
        //Het declareren van de close operation
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //De titel van het scherm
        setTitle("Info Client");
        //Zorg dat het scherm niet geresized kan worden
        setResizable(false);
        //Zorg dat het scherm geen layout heeft
        loginpanel.setLayout(null);
        //Maak een font aan voor de titel boven de invulvelden
        Font font = new Font(Font.DIALOG,Font.BOLD,15);
        
        //Maak de menubar met bijbehorende items en declareer de positie
        menubar = new JMenuBar();
        bestand = new JMenu("Bestand");
        help = new JMenuItem("Help");
        menubar.setBounds(0,0,2000,20);
        
        //Maak de titel boven de invulvelden en declareer de positie
        title = new JLabel("Info client login");
        title.setFont(font);
        title.setBounds(50,40,200,20);
        
        //Maak het JLabel voor bij het gebruikersnaamveld en declareer de positie
        namelabel = new JLabel();
        namelabel.setText("Login:");
        namelabel.setBounds(50,70,100,20);
        
        //Maak het gebruikersnaamveld en declareer de positie
        name = new JTextField(25);
        name.setBounds(50,90,100,20);
        
        //Maak het JLabel voor het wachtwoordveld en declareer de positie
        passlabel = new JLabel();
        passlabel.setText("Password:");
        passlabel.setBounds(50,120,100,20);
        
        //Maak het wachtwoordveld en declareer de positie
        password = new TextField(25);
        password.setEchoChar('*');
        password.setBounds(50,140,100,20);
        
        //Maak de inlogknop aan en declareer de positie
        submit = new JButton("Log in");
        submit.setBounds(50,180,80,20);
        
        //Voeg alle items toe aan het paneel
        loginpanel.add(title);
        loginpanel.add(namelabel);
        loginpanel.add(name);
        loginpanel.add(passlabel);
        loginpanel.add(password);
        loginpanel.add(submit);
        loginpanel.add(menubar);
        
        //Voeg alle items toe aan de menubalk
        menubar.add(bestand);
        bestand.add(help);
        
        //Voeg de actionlisteners toe aan de inlogknop en het menuitem
        help.addActionListener(this);
        submit.addActionListener(this);
        
        //Declareer loginpanel als contentpane
        setContentPane( loginpanel );
        
        //Maak het scherm zichtbaar
        setVisible( true );
        
    }
    //Methodes

    @Override
    public void actionPerformed(ActionEvent e) 
    {
        //Als de bron van de actionlistener de submit knop is:
        if(e.getSource() == submit)
        {
           //Declareren van variabelen
            String email = name.getText();
            String wachtwoord= password.getText();
            // Variabele om te kijken of iemand admin is
            String controlemaster = " " + email + " " + wachtwoord + " true";
            // Variabele om te kijken of iemand een normaal account heeft.
            String controle = " " + email + " " + wachtwoord + " false";
            
            //Het verzenden van de inlogquery over de socket
            InfoClient.socketconnection.send("SELECT * from inloggegevens WHERE email = '" + email + "' AND wachtwoord = '" + wachtwoord + "'");
            //Het ophalen van de resultaten van de query
            Object[][] uitkomst = InfoClient.socketconnection.read();
            //Maak een string met hierin de waarden die uit de query komen.
            for (int r=0; r<uitkomst.length; r++) {
                for (int c=0; c<uitkomst[r].length; c++) {
                    tekst += (" " + uitkomst[r][c]);
                }
                tekst += "";
            }
            
            //Controleren wat voor account iemand heeft
            
            //Als de gebruiker een normaal account heeft:
            if(tekst.equals(controle)){
                managementinfo = new ManagementInfo();
                managementinfo.setVisible(true);
                this.setVisible(false);
            //Als de gebruiker een master account heeft:
            }else if(tekst.equals(controlemaster)){
                users = new Users();
                users.setVisible(true);
                this.setVisible(false);
            //Als de inloggegevens niet bekend zijn:
            }else{
                JOptionPane.showMessageDialog(this,"Controleer of de gegevens juist zijn ingevoerd","Ongeldige invoer",JOptionPane.WARNING_MESSAGE);
            }
         }
    }
    
    
}